﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClientNodeLib
{
	/// <summary>
	/// Represents a result that needs to be sent back to the server
	/// public so it can be serialized
	/// </summary>
	[Serializable()]
	public class ResultQueueItem
	{
		public ResultQueueItem()
		{
			this.Files = new List<string>();
			this.ClientPaths = new List<string>();
			BatchId = Guid.Empty;
			ResultInfo = new ClientNodeLib.ServerNodeLib.ResultInfo();
			this.IsSent = false;
			this.ChunkSize = 0;
		}
		/// <summary>
		/// The local filenames; where the actual data is stored on the client
		/// </summary>
		public List<String> Files;
		/// <summary>
		/// The file names that the server expects to see.
		/// Because we copy the data to a temp directory, the client
		/// paths are different than that actual file names
		/// </summary>
		public List<String> ClientPaths;
		/// <summary>
		/// The Guid of the batch that is associated with this
		/// </summary>
		public Guid BatchId;
		/// <summary>
		/// The summary result object
		/// </summary>
		public ServerNodeLib.ResultInfo ResultInfo;
		/// <summary>
		/// Whether this item has been completely sent
		/// </summary>
		public bool IsSent;
		/// <summary>
		/// The server-reported chunk transfer size.
		/// </summary>
		public int ChunkSize;
	}
}
